﻿Imports System.Data
Imports System.Data.SqlClient
Public Class MenuAgendamento
    Dim objBBL As New BLLAgendamento
    Dim dv As DataView
    Dim tab As New DataTable
    Public codigo As String = ""
    Public sub atualizaagendamento()
        tab = objBBL.LocalizaAgendamento()
        dgrecursos.Columns.Clear()
    End Sub
    Sub atualizarecurso(ByVal codigo As Integer, ByVal data As String)
        dgrecursos.DataSource = objBBL.LocalizaRecurso(codigo, data)
        dgrecursos.Columns(0).HeaderText = "Código" ' define o nome da coluna
        dgrecursos.Columns(0).Width = 60 'define a largura da coluna
        dgrecursos.Columns(1).HeaderText = "Descrição"
        dgrecursos.Columns(1).Width = 150
        dgrecursos.Columns(2).HeaderText = "Patrimônio"
        dgrecursos.Columns(2).Width = 150
    End Sub
    Sub filtroagendamento()
        Try
            dv = New DataView(tab)
            Dim data As DateTime = mcdata.SelectionRange.Start
            dv.RowFilter = "age_data='" & mcdata.SelectionRange.Start & "'"
            gbagendamento.Text = "Agendamento(s) para " & data.ToLongDateString
            Me.dgagendamento.DataSource = dv
            dgagendamento.Columns(0).HeaderText = "Código"
            dgagendamento.Columns(0).Width = 60
            dgagendamento.Columns(1).HeaderText = "Data" ' define o nome da coluna
            dgagendamento.Columns(1).Width = 80 'define a largura da coluna
            dgagendamento.Columns(2).HeaderText = "Horário"
            dgagendamento.Columns(2).Width = 60
            dgagendamento.Columns(3).HeaderText = "Solicitante"
            dgagendamento.Columns(3).Width = 150
            dgagendamento.Columns(4).HeaderText = "Obs"
            dgagendamento.Columns(4).Width = 80
            dgagendamento.Columns(5).HeaderText = "Curso"
            dgagendamento.Columns(5).Width = 130
            dgagendamento.Columns(6).HeaderText = "Sala"
            dgagendamento.Columns(6).Width = 120
        Catch ex As Exception
        End Try
    End Sub
    Private Sub Consulta_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        mcdata.TodayDate = Date.Now
        mcdata.ShowTodayCircle = True
        atualizaagendamento()
        filtroagendamento()

    End Sub


    Private Sub dgdados_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgagendamento.CellDoubleClick
        If e.RowIndex >= 0 Then 'procura o index que ele clicou
            Dim codigo As Integer
            Dim data, solicitante As String
            If dgagendamento.RowCount > 0 Then
                codigo = dgagendamento.Rows(e.RowIndex).Cells(0).Value.ToString()
                data = dgagendamento.Rows(e.RowIndex).Cells(1).Value
                solicitante = dgagendamento.Rows(e.RowIndex).Cells(3).Value
                gbrecursos.Text = "Recursos agendendados por: " & solicitante
                atualizarecurso(codigo, data)
            End If
        End If
    End Sub
    Private Sub bnovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bnovo.Click
        codigo = ""
        Agendamento.ShowDialog()
    End Sub

    Private Sub bcancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bcancelar.Click
        Dim indice As Integer
        Dim age_codigo As Integer
        Dim ret As Boolean
        Try
            indice = -1
            For Each linha As DataGridViewRow In dgagendamento.SelectedRows 'acha a linha que o susario selecionou
                If (Not linha.Cells("age_codigo") Is Nothing) Then 'mandei verificar pelo campo do codigo
                    indice = linha.Index 'quando acha linha ele guarda a posiçao
                End If
            Next
            If (indice <> -1) Then
                Dim dtagendamento As DateTime = DateTime.Parse(dgagendamento.Rows(indice).Cells("age_data").Value) ' captura data selecionadana datagrid
                Dim dtatual As DateTime = Date.Now.Date 'captura data atual
                Dim hragendamento As DateTime = DateTime.Parse(dgagendamento.Rows(indice).Cells("age_horainicial").Value.ToString()).ToString("HH:mm:ss") 'captura hora selecionada na datagrid
                Dim hratual As DateTime = DateTime.Now.ToString("HH:mm:ss") 'captura hora atual
                age_codigo = dgagendamento.Rows(indice).Cells("age_codigo").Value ' atribui o codigo na variavel global, para talvez alterar mais pra frente
                If dtagendamento = dtatual And hragendamento > hratual Then
                        If MessageBox.Show("Confirma Cancelamento ?", "", MessageBoxButtons.YesNo) = vbYes Then
                        objBBL.pagecodigo = age_codigo
                        ret = objBBL.excluir()
                    End If
                ElseIf dtagendamento > dtatual Then
                    objBBL.pagecodigo = age_codigo
                    ret = objBBL.excluir()
                Else
                    MsgBox("Agendamento não pode ser cancelado", MsgBoxStyle.Exclamation)
                End If
            Else
                MsgBox("selecione uma linha", MsgBoxStyle.Information)
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
        End Try
        If ret = True Then
            MsgBox("Agendamento Cancelado com sucesso", MsgBoxStyle.Information)
            atualizaagendamento()
            filtroagendamento()
       
        End If
    End Sub


    Private Sub balterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles balterar.Click
        Dim indice As Integer
        Try
            indice = -1
            For Each linha As DataGridViewRow In dgagendamento.SelectedRows 'acha a linha que o susario selecionou
                If (Not linha.Cells("age_codigo") Is Nothing) Then 'mandei verificar pelo campo do codigo
                    indice = linha.Index 'quando acha linha ele guarda a posiçao
                End If
            Next
            If (indice <> -1) Then
                Dim dtagendamento As DateTime = DateTime.Parse(mcdata.SelectionRange.Start)
                Dim dtatual As DateTime = Date.Now.Date
                Dim hragendamento As DateTime = DateTime.Parse(dgagendamento.Rows(indice).Cells("age_horainicial").Value.ToString()).ToString("HH:mm:ss") 'captura hora selecionada na datagrid
                Dim hratual As DateTime = DateTime.Now.ToString("HH:mm:ss") 'captura hora atual
                If dtagendamento = dtatual And hragendamento > hratual Then
                    codigo = dgagendamento.Rows(indice).Cells("age_codigo").Value
                    Agendamento.ShowDialog()
                ElseIf dtagendamento > dtatual Then
                    codigo = dgagendamento.Rows(indice).Cells("age_codigo").Value
                    Agendamento.ShowDialog()
                Else
                    MsgBox("Agendamento não pode ser Alterado", MsgBoxStyle.Exclamation)
                End If
            Else
                MsgBox("selecione uma linha", MsgBoxStyle.Information)
            End If
        Catch

        End Try
    End Sub



    Private Sub mcdata_DateSelected(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles mcdata.DateSelected
        dgagendamento.Columns.Clear()
        filtroagendamento()
        dgrecursos.Columns.Clear()
    End Sub


    Private Sub mcdata_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles mcdata.DateChanged

    End Sub
End Class